import requests
from requests_toolbelt.multipart.encoder import MultipartEncoder
import json
# ************************************************ #
# 这部分需要添加到已有知识库中
# ************************************************ #

# 知识库中单段文本长度(不适用MarkdownHeaderTextSplitter)
CHUNK_SIZE = 250
# 知识库中相邻文本重合长度(不适用MarkdownHeaderTextSplitter)
OVERLAP_SIZE = 50
# 是否开启中文标题加强，以及标题增强的相关配置
# 通过增加标题判断，判断哪些文本为标题，并在metadata中进行标记；
# 然后将文本与往上一级的标题进行拼合，实现文本信息的增强。
ZH_TITLE_ENHANCE = False
multipart_data = MultipartEncoder(
    fields={
        # 这里假设你要上传的文件存储在'file1.txt'和'file2.txt'中
        # 'files': ('file1.txt', open('/home/FAST_DATA_MIRROR/Langchain-Chatchat-master/云鹰平台服务系统接口协议V1.8.4.txt', 'rb'), 'text/plain'), # txt
        'files': ('file1.txt', open('/home/FAST_DATA_MIRROR/Langchain-Chatchat-master/云鹰平台服务系统接口协议V1.8.4.pdf', 'rb'), 'application/pdf'), # txt
        'knowledge_base_name': 'samples',
        'override': 'false',
        'to_vector_store': 'true',
        'chunk_size': str(CHUNK_SIZE),  # CHUNK_SIZE需要被定义
        'chunk_overlap': str(OVERLAP_SIZE),  # OVERLAP_SIZE需要被定义
        'zh_title_enhance': str(ZH_TITLE_ENHANCE),  # ZH_TITLE_ENHANCE需要被定义
        'docs': json.dumps({"test.txt": [{"page_content": "custom doc"}]}),
        'not_refresh_vs_cache': 'false'
    }
)
response = requests.post('http://localhost:7861/knowledge_base/upload_docs', data=multipart_data, headers={'Content-Type': multipart_data.content_type})
print(response.text)
